﻿using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Logging;
using NLog.Web;

namespace YiSha.Admin.Web
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateWebHostBuilder(args).Build().Run();
        }

        /// <summary>
        /// 这是 ASP.NET Core 2.x 及以上版本推荐的一种方式来创建和配置 Web 主机。它会设置应用程序的默认配置，包括应用程序的内容根目录和一些默认的服务配置。
        /// </summary>
        /// <param name="args"></param>
        /// <returns></returns>
        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                   //指定应用程序监听的 URL 地址。在这里，应用程序会监听所有网络接口（*）的 5003 端口。这意味着应用程序会响应来自该端口的所有请求
                   .UseUrls("http://*:5003")
                   //指定启动应用程序时要使用的 Startup 类型。Startup 类通常包含配置应用程序的服务和中间件的代码。
                   .UseStartup<Startup>()
                   //配置日志记录系统。
                   .ConfigureLogging(logging =>
                   {
                       //.ClearProviders() 方法清除默认的日志提供程序，这样可以完全控制日志记录。
                       logging.ClearProviders();
                       // .SetMinimumLevel(LogLevel.Trace) 设置最低日志级别为 Trace，这样所有等级的日志都会被记录
                       logging.SetMinimumLevel(LogLevel.Trace);
                   })
            //集成 NLog 日志框架。这个方法会启用 NLog 作为日志提供程序，使应用程序可以使用 NLog 进行日志记录。
            .UseNLog();
    }
}
